package com.huluobo.jetpackkotlindemo.databinding

import androidx.databinding.BaseObservable
import androidx.databinding.Bindable
import com.huluobo.jetpackkotlindemo.BR

/**
 * Created by lc on 2022/12/12.
 * DataBinding双向绑定总结:
 * 1.使用@Bindable标记属性,标记get属性,可以监听属性变化
 * 2.set属性中使用notifyPropertyChanged来通知其他的观察者该属性是否改变
 * 3.BR是binding的R文件,与正常的R文件类似,都是id的集合
 * 4.xml中需要使用@={user.userName}这种形式,才能调用的到
 */
class User1 : BaseObservable() {
    @get:Bindable
    var userName: String = ""
        set(value) {
            field = value
            notifyPropertyChanged(BR.userName)
        }

    @get:Bindable
    var userId: String = ""
        set(value) {
            field = value
            notifyPropertyChanged(BR.userId)
        }
}